package thread;
//加锁
public class Demo19 {
    public static int count = 0;
    private static Object locker = new Object();

    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(()->{
            for (int i = 0; i < 50000; i++) {
                synchronized(Demo19.class){
                    count++;
                }
            }
        });

        Thread t2 = new Thread(()->{
            for (int i = 0; i < 50000; i++) {
                synchronized(Demo19.class){
                    count++;
                }
            }
        });
        t1.start();

        t2.start();
        t1.join();
        t2.join();
        System.out.println(count);
    }
    public static void main1(String[] args) throws InterruptedException {
        Thread t1 = new Thread(()->{
            for (int i = 0; i < 50000; i++) {
                //synchronized(locker){
                    count++;
                //}
            }
        });

        Thread t2 = new Thread(()->{
            for (int i = 0; i < 50000; i++) {
                synchronized(locker){
                    count++;
                }
            }
        });
        t1.start();

        t2.start();
        t1.join();
        t2.join();
        //正确结果10000
        System.out.println(count);
    }
}
